package org.xx.armory.ofs;

import org.xx.armory.commons.ValueEnum;

/**
 * 文件属性。
 */
public enum FileAttribute
        implements ValueEnum {
    /**
     * 正常，只能单独使用。
     */
    NORMAL(0x00L),

    /**
     * 只读。
     */
    READONLY(0x01L),

    /**
     * 隐藏。
     */
    HIDDEN(0x02L),

    /**
     * 系统专用。
     */
    SYSTEM(0x04L),

    /**
     * 目录。
     */
    DIRECTORY(0x10L);


    final long value;

    /**
     * 构造文件属性枚举。
     *
     * @param value
     *         对应的整数值。
     */
    FileAttribute(
            long value
    ) {
        this.value = value;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int value() {
        return (int) this.value;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public long longValue() {
        return this.value;
    }
}
